package com.bzframework.ai.langchain4j;

import dev.langchain4j.model.output.Response;
import dev.langchain4j.service.Result;
import dev.langchain4j.service.SystemMessage;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * LangChain4jAiService
 */
@SystemMessage(fromResource = "langchain4j/prompt.txt")
public interface LangChain4jAiService {

    String chatSimpleMessage(String userMessage);

    Flux<String> chatStreamMessage(String userMessage);

    Report chatForReport(String userMessage);

    Response<String> chatForResult(String userMessage);

    String chatForTool2Calculate(String userMessage);

    record Report(String name, List<String> suggestions){}

}
